x86/EFI: pass boot services variable info to runtime code
authorJan Beulich <jbeulich@suse.com>
Mon, 22 Apr 2013 11:58:01 +0000 (13:58 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 22 Apr 2013 11:58:01 +0000 (13:58 +0200)
commit9be8a4447103d92843fcfeaad8be42408c90e9a9
tree7e6402269c9cbb98ec8de65a355e5d18b47c44a5
parent4fdef9a6cabe9810793f80df88d559a22998157b
x86/EFI: pass boot services variable info to runtime code

EFI variables can be flagged as being accessible only within boot services.
This makes it awkward for us to figure out how much space they use at
runtime. In theory we could figure this out by simply comparing the results
from QueryVariableInfo() to the space used by all of our variables, but
that fails if the platform doesn't garbage collect on every boot. Thankfully,
calling QueryVariableInfo() while still inside boot services gives a more
reliable answer. This patch passes that information from the EFI boot stub
up to the efi platform code.

Based on a similarly named Linux patch by Matthew Garrett <matthew.garrett@nebula.com>.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
xen/arch/x86/efi/boot.c
xen/arch/x86/efi/efi.h
xen/arch/x86/efi/runtime.c
xen/include/efi/efiapi.h
xen/include/public/platform.h